package demo02;

public class MyThread extends Thread { // 线程类
    /*
     *  public Thread(String name)：分配一个指定名字的新线程对象
     */
    public MyThread(String name) {
        super(name);
    }

    /*
     *  public void run()：此线程需要执行的任务，需要在此处定义代码
     */
    @Override
    public void run() {
        try { // 休眠6秒等待主线程结束，便于展示结果
            sleep(6000);
        } catch (Exception e) {
            e.printStackTrace();
        }

        /* 
         *  public String getName()：获取当前线程的名称
         */
        System.out.println(getName()); // MyThread-01

        /*
         *  public static Thread currentThread()：返回对当前正在执行的线程对象的引用对象
         */
        System.out.println(currentThread()); // Thread[MyThread-01,5,main]

        /*
         *  public void setName()：改变当前线程的名称，使之与参数name相同
         */
        setName("粹花Thread");
        System.out.println(getName()); // 粹花Thread
        System.out.println(Thread.currentThread()); // Thread[粹花Thread,5,main]

        /*
         *  public static void sleep(long millis)：使当前正在执行的线程以指定的毫秒数暂时停止执行（休眠）
         *      注意：该方法会产生编译期异常，需要使用try...catch捕获处理
         */
        System.out.println("粹花报时：");
        try {
            for (int i = 1; i < 61; i++) {
                System.out.println("粹~" + i);
                sleep(1000); // 休眠1s
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        System.out.println("粹花线程任务结束~");
    }
}
